/*
Problem Description
这次xhd面临的问题是这样的：在一个平面内有两个点，求两个点分别和原点的连线的夹角的大小。

注：夹角的范围[0，180]，两个点不会在圆心出现。
 

Input
输入数据的第一行是一个数据T，表示有T组数据。
每组数据有四个实数x1,y1,x2,y2分别表示两个点的坐标,这些实数的范围是[-10000,10000]。
 

Output
对于每组输入数据，输出夹角的大小精确到小数点后两位。
 

Sample Input
2
1 1 2 2
1 1 1 0
 

Sample Output
0.00
45.00
 */
package com.yuan.algorithms.team20150724;

import java.util.Scanner;

/**
 * @author YouYuan E-mail:1265161633@qq.com
 * @version 创建时间：2015年7月30日 下午3:03:08
 * 说明:简单的几何计算。设三角形三条边分别为a,b,c 。设要求的夹角为C。
 * 公式可知：a=sqrt(x1*x1+y1*y1); b=sqrt(x2*x2+y2*y2); c=sqrt(pow(abs(x2-x1),2)+pow(abs(y2-y1),2))     
 * cosC=(a*a+b*b-c*c)/(2*a*b)      C=acos(cosC)     
 * 最后注意是要求角度，此时C是弧度，所以真正的结果是  C*180/PI
 */
public class 几何_夹角有多大II {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		while(sc.hasNext()) {
			int t = sc.nextInt();
			while(--t>=0) {
				double x1 = sc.nextDouble();
				double y1 = sc.nextDouble();
				double x2 = sc.nextDouble();
				double y2 = sc.nextDouble();
				double a, b, c, cosC, redianC;
				a = Math.sqrt(x1*x1+y1*y1);
				b = Math.sqrt(x2*x2+y2*y2);
				c = Math.sqrt(Math.pow(Math.abs(x2-x1), 2) + Math.pow(Math.abs(y2-y1), 2));
				cosC = (a*a+b*b-c*c)/(2*a*b);
				redianC = Math.acos(cosC);
				double result = redianC * 180 / Math.PI;
				System.out.printf("%.2f", result);
				System.out.println();
			}
		}
	}

}
